﻿#pragma once
#include "./util/c99defs.hpp"
#include "cat-interaction.hpp"

#ifdef __cplusplus
extern "C" {
#endif
	//joystick hook
	EXPORT void cat_hook_start(int id);

	EXPORT void cat_hook_stop();

	EXPORT void cat_hook_switch_target(int id);

	EXPORT void cat_ticktock_start();

	EXPORT void cat_ticktock_stop();

	EXPORT bool cat_hook_regist_tick(void* (*tick)(float),int id);

	EXPORT void cat_hook_fire_tick(int id);

	EXPORT bool cat_hook_regist_key_press(void* (*key_press)(const cat_key_event* event, bool), int id);

	EXPORT void cat_hook_fire_key_press(int id);

	EXPORT bool cat_hook_regist_mouse_click(void* (*mouse_click)(const cat_mouse_click_event* event, bool), int id);

	EXPORT void cat_hook_fire_mouse_click(int id);

	EXPORT bool cat_hook_regist_mouse_move(void* (*mouse_move)(const cat_mouse_move_event* event), int id);

	EXPORT void cat_hook_fire_mouse_move(int id);

	EXPORT bool cat_hook_regist_force_mouse_move(void* (*force_mouse_move)(const cat_mouse_move_event* event), int id);

	EXPORT void cat_hook_fire_force_mouse_move(int id);

	EXPORT bool cat_hook_regist_joystick_button_press(void* (*joystick_button_press)(const cat_joystick_button_event* event, bool), int id);

	EXPORT void cat_hook_fire_joystick_button_press(int id);

	EXPORT bool cat_hook_regist_joystick_axis_move(void* (*joystick_axis_move)(const cat_joystick_axis_move_event* event), int id);

	EXPORT void cat_hook_fire_joystick_axis_move(int id);

	EXPORT void cat_send_key_press(const cat_key_event* event, bool _keyup);

	EXPORT void cat_send_mouse_click(const cat_mouse_click_event* event, bool _keyup);

	EXPORT void cat_send_mouse_move(const cat_mouse_move_event* event);

	EXPORT void cat_send_force_mouse_move(const cat_mouse_move_event* event);

#ifdef __cplusplus
}
#endif